Имитация процесса функционирования сложной системы
Одним из основных средств проблемной ориентации АИМ является выбор модуля для описания элемента сложной системы. Модульный принцип и регистровый метод построения АИМ предполагают, что элементы моделируемой системы имитируются последова — тельно на небольших интервалах времени, что дает возможность свести взаимодействие элементов к упорядоченной совокупности событий в рамках механизма обмена сигналами. К такому режиму взаимодействия элементов сложной системы хорошо приспособлена стохастическая динамическая система с дискретным вмешательством случая, функционирующая в непрерывном времени. Движение ее включает случайные скачки состояния в некоторые «опорные» моменты времени, происходящие под влиянием вмешательства внешних (входной сигнал) или внутренних случайных факторов, а также вполне детерминированные фрагменты движения между опорными моментами времени.
В настоящее время широко применяется построение имитационных моделей на базе простейших типов систем массового обслуживания, конечных и вероятностных автоматов. Исключительный интерес представляет выбор в качестве модуля кусочно-линейного агрегата, который охватывает как системы массового обслуживания различных типов, так и вероятностные автоматы. Кроме того, при помощи кусочно-линейного агрегата могут быть точно или приближенно описаны некоторые объекты, не принадлежащие ни одному из этих типов систем.
Привлекательность кусочно-линейного агрегата как модуля для АИМ объясняется не только широтой охвата типичных математических схем, используемых для формализации реальных объектов. Немаловажное значение имеет и то обстоятельство, что система из кусочно-линейных агрегатов может быть сама описана как кусочно-линейный агрегат с характеристиками, выражающимися через характеристики элементов и параметры сопряжения. Это позволяет построить удобные процедуры обработки и анализа результатов моделирования и соответствующие им программы.
На первом этапе построения АИМ целесообразно ограничиться по возможности более простым модулем. Накопление опыта эксплуатации АИМ более удобно выполнить на известных, хорошо изученных, типичных математических схемах формализации реальных объектов. С этой точки зрения использование в качестве модуля даже кусочно-линейного агрегата общего вида представляется излишне сложным. Заслуживает тщательного рассмотрения класс кусочно-линейных агрегатов (называемый далее KJIAj), охватывающий как частные случаи конечные и вероятностные автоматы, системы массового обслуживания различных типов, разностные схемы решения дифференциальных уравнений и т. д. Применение их в качестве модуля существенно упрощает реализацию АИМ.
В отличие от общего случая кусочно-линейного агрегата KJIAj выдает выходные сигналы только в момент выхода на границу (обращения в нуль одной из координат zVj), а в моменты поступления входных сигналов выходные сигналы не выдаются. Это ограничение позволяет существенно упростить процедуры моделирования KJIAj на ЭВМ и не сужает класса моделируемых объектов. В самом деле, без упомянутого ограничения в момент t поступления входного сигнала элемент Cj сложной системы выдавал бы выходной сигнал, который в тот же самый момент t поступал бы как входной сигнал к некоторым элементам С*1,С*2»—«О/ (согласно схеме сопряжения), а эти элементы в свою очередь выдавали бы выходные сигналы, которые в тот же самый момент / поступали бы как входные сигналы к другим элементам (также согласно схеме сопряжения) и т. д. Необходимость учитывать лавинообразный рост числа выдаваемых в системе сигналов в один и тот же момент времени усложняет процедуры формирования системных событий и сам процесс имитации. Вместе с тем если по смыслу задачи иногда потребуется обеспечить выдачу выходного сигнала в момент поступления входного сигнала, это можно сделать при помощи дополнительной координаты zVi, которая обращается в нуль в момент поступления входного сигнала.
Если все упомянутые здесь ограничения выполнены, алгоритмы имитации модуля KJIAj на ЭВМ оказываются действительно значительно проще и удобнее, чем в общем случае кусочно-линейного агрегата.
Основная идея построения имитационной программы вытекает из того обстоятельства, что использование в качестве модуля динамической системы с дискретным вмешательством случая и сведение взаимодействия элементов сложной системы к их сопряжению позволяют имитировать элементы системы в интервалах времени между моментами выдачи и приема сигналов независимо друг от друга. Таким образом, сведения о моделируемом объекте (архив элементов) можно располагать во внешней памяти ЭВМ, что практически снимает ограничения на число элементов моделируемой системы. Благодаря мультипрограммному режиму работы современных ЭВМ удается эффективно организовать загрузку процессоров и снизить потери за счет работы с внешней памятью.
Имитацию процесса функционирования сложной системы можно представить как совокупность следующих частей: имитации функционирования элемента системы, имитации взаимодействия между элементами и управления очередностью системных событий.
Имитация функционирования элемента системы (благодаря модульному принципу построения АИМ) сводится к настройке модуля на данный элемент системы и реализации на ЭВМ полученной таким образом модели элемента. Настройка осуществляется путем считывания в оперативную память соответствующей строки архива элементов. Далее производятся определение момента выхода состояния KJIAj на границу и имитация поступления входного сигнала (очередной опорный момент времени).
Имитация взаимодействия между элементами состоит в определении адресов передачи и содержания выходного сигнала имитируемого элемента и выдаче его в соответствии с адресами другим элементам системы. Для управления моделью важную роль играет установление строгой очередности системных событий, происходящих в процессе имитации (регистровый метод). Модуль настраивается на тот элемент системы, очередной опорный момент функционирования которого наиболее близок к рассматриваемому моменту модельного времени.
Получение результатов моделирования, позволяющих определить характеристики исследуемого процесса, состоит в фиксации коорди
нат состояний всех элементов системы, а также соответствующих выходных сигналов в опорные моменты времени. В силу линейности движения между скачками при помощи линейной интерполяции можно определить любые промежуточные состояния элементов. Располагая состояниями системы и выходными сигналами для любого момента времени из заданного интервала, мы можем вычислить любые интересующие нас характеристики исследуемого процесса.
Для реализации на ЭВМ перечисленных здесь имитационных процедур программа моделирования должна иметь соответствующие блоки (подпрограммы), приведенные на рис. 4.6. Прежде чем рассматривать их работу в динамике, остановимся вкратце на тех массивах информации, которые нужны для обеспечения имитации.
Регистр элемента (В). Строка архива элементов, вызванная для настройки модуля на данный элемент системы, фиксируется в специально отведенных ячейках оперативной памяти — регистре В (см. рис. 4.6). Информация здесь располагается в стандартном порядке, удобном для последующего использования. С течением модельного времени (при переходе к следующим опорным моментам) содержимое регистра В обновляется.
![]() |
Регистр времен (Т). В этом регистре для каждого элемента системы хранится ближайший предполагаемый момент выхода на границу
t*. Содержимое регистра с течением времени обновляется. Если для какого-нибудь элемента системы становится известным очередной момент Л то он заносится в регистр Т вместо предыдущего.
Регистр выходного сигнала (Y). Служит для хранения компонент сформированного сигнала до их передачи по конкретным адресам. Выходной сигнал, выдаваемый данным элементом сложной системы, может быть предназначен для передачи нескольким элементам системы. Поскольку элементы имитируются последовательно (единственным модулем), то компоненты выходного сигнала хранятся в регистре Y до окончания выдачи их адресатом. В процессе имитации содержимое регистра меняется; новые сформированные сигналы записываются, устаревшие сигналы вычеркиваются.
Регистр адресатов (N). В нем хранятся номера элементов, которые необходимо вызвать для имитации реакции на входные сигналы, извлекаемые из регистра Y. Номера элементов подаются поочередно в подпрограмму считывания строк архива элементов с внешней памяти.
Управляющий регистр (U). Содержит набор управляющих признаков, помогающих обеспечить правильное течение процесса имитации. К ним относятся признаки управления имитацией элемента системы (например, признак вида скачка: при выходе на границу 8 = 1, при поступлении входного сигнала 8 = 0 и т. д.), признаки управления имитацией системы в целом (например, признак, управляющий выбором варианта схемы сопряжения), а также признаки, определяющие переход к очередной реализации процесса имитации, переход к другому варианту исходных данных и т. д.
Кроме того, предполагается, что в нашем распоряжении имеются архив элементов и библиотека стандартных процедур.
Работу программы имитации сложной системы можно себе представить следующим образом. Пусть в начальный момент времени все элементы системы находятся в заданных начальных состояниях. Настраиваем последовательно модуль на элементы системы и определяем для них моменты t* предполагаемого выхода на границу. Эти моменты располагаем в регистре Т. Определение последовательности системных событий состоит в выборе из регистра Т наименьшего Ґ и вызове из архива элементов строки, соответствующей элементу системы с наименьшим t*.
Информация об элементе, содержащаяся в вызванной строке архива, размещается в регистре В (модуль настраивается на соответствующий элемент системы). Блок имитации элемента системы расшифровывает содержимое регистра В. В результате расшифровки определяются имена процедур (микрооператоров), адреса параметров этих процедур, а также адреса компонентов состояния элемента системы. По именам процедур и адресам параметров производится вызов процедур из библиотеки и реализация их на ЭВМ. В каждый опорный момент времени реализуется полный набор макрооператоров (перемещение, скачок, сигнал), за тем исключением, что в момент поступления входного сигнала выходной сигнал не выдается. В результате реализации этих операторов мы получаем новый момент
выхода Ґ на границу (записываем в регистр Т), значения координат выходного сигнала (записываем в регистр Y), а также координаты КЛА[ после скачка (записываем в регистр В).
Следующий шаг в работе имитационной программы (рис. 4.7) — имитация взаимодействия между элементами системы. Здесь существенно ответить на два вопроса:
1. Какие элементы системы получают сигналы от данного элемента (т. е. какие строки архива элементов потребуется вызвать из внешней памяти)?
2. Как скомпоновать входные сигналы элементов системы, получающих сигналы от данного элемента, зная компоненты его выходного сигнала (т. е. каким образом компоненты выходного сигнала, содержащиеся в регистре Y, сопоставить входным контактам элементов, принимающих сигналы)?
Ответы на эти вопросы могут быть получены по информации, содержащейся в схеме сопряжения. Для этой цели наиболее удобной оказывается одноуровневая схема сопряжения в натуральной форме. Эта информация содержится в той части строки архива элементов, которая отводится для хранения сведений о сопряжении элементов сложной системы.
Ответ на первый вопрос — номера элементов, получающих сигналы от данного элемента, помещаются в регистр N. По данным этого регистра в регистр В поочередно вызываются соответствующие строки архива элементов.
Ответ на второй вопрос формируется после вызова строки архива, соответствующей конкретному элементу, получающему сигнал.
После того, как все элементы-адресаты получили свой сигнал, управление опять передается управляющей программе для определения минимального t* в регистре Т.
Окончание данной реализации имитационного эксперимента происходит в тот момент, когда очередное минимальное Ґ оказывается больше верхнего предела интервала моделирования. В этом случае вступают в действие блоки управляющей программы, организующие переход к новой реализации процесса или новому варианту расчета, а возможно, и переход к обработке результатов моделирования. Уп-
|
Нет |
Нет |
![]() |
![]() |
![]() |
5 |
Вызов из архива элементов строки с очередным номером у из регистра Nr. Расположение ее в регистре BR |
_______________________________ 1_______________________________ |
|
6 |
Определение имен процедур и соответствующих им параметров по адресующей таблице и значениям признаков в регистре UR |
_______________________________ к_______________________________ |
|
7 |
Имитация элемента системы. Вызов блока «Модуль». Реализация процедур имитации KJIAj |
_______________________________ 1______________________________ |
|
8 |
Занесение новых значений состояния п’ в архив элементов. Помещение нового t* в регистр TR, новых выходных сигналов в регистр Yr и Т. Д. |
|
Да |
Рис. 4.7. Алгоритм имитационной программы
равляющие этим процессом признаки располагаются в регистре U. В настоящее время успешно эксплуатируются программы имитации сложных систем, построенные с учетом изложенных здесь принципов и подходов. Заметим, что эти программы, являясь программами
многоразового использования, должны быть тщательно отшлифованы и написаны на машинно-ориентированном языке.